package com.ruoyi.event.domain.bo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * 人员类型转换业务对象 event_change_type
 *
 * @author xiaohao
 * @date 2023-02-10
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class EventChangeTypeBo extends BaseEntity {

    /**
     * 主键
     */
    @NotNull(message = "主键不能为空", groups = {EditGroup.class})
    private Long typeId;

    /**
     * 用户id
     */
    @NotNull(message = "用户id不能为空", groups = {AddGroup.class, EditGroup.class})
    private Long userId;

    /**
     * 转换类型
     */
    @NotBlank(message = "转换类型不能为空", groups = {AddGroup.class, EditGroup.class})
    private String changeType;

    /**
     * 决定机关
     */
    private String jdjg;

    /**
     * 决定时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date jdsj;

    /**
     * 进（入）所时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date rssj;

    /**
     * 出所时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date cssj;

    /**
     * 戒毒场所
     */
    private String jdcs;

    /**
     * 强戒原因
     */
    private String qjyy;

    /**
     * 备注
     */
    private String remark;

    /**
     * 入所原因
     */
    private String rsyy;

    /**
     * 羁押地点
     */
    private String jsdd;

    /**
     * 入狱时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date rysj;

    /**
     * 判刑地点
     */
    private String pxdd;

    /**
     * 出狱时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date cysj;

    /**
     * 服刑地区
     */
    private String fxdq;

    /**
     * 监狱名称
     */
    private String jymc;

    /**
     * 入狱原因
     */
    private String ryyy;

    /**
     * 执行时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date zxsj;

    /**
     * 治疗时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date zlsj;

    /**
     * 治疗机构
     */
    private String zljg;

    /**
     * 离开时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date lksj;

    /**
     * 死亡时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date swsj;

    /**
     * 死亡原因
     */
    private String swyy;

    /**
     * 死亡地点
     */
    private String swdd;

    /**
     * 结束时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date jssj;

    /**
     * 原因详情
     */
    private String yyxq;

    /**
     * 拘留地点
     */
    private String jldd;

    /**
     * 决定书上传
     */
    private String jdsFiles;

    /**
     * 精神病院
     */
    private String jsby;

    /**
     * 入院日期
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date ryrq;

    /**
     * 出院日期
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date cyrq;

    /**
     * 撤销时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date cxsj;

    /**
     * 文书号
     */
    private String wsh;


}
